//package com.zjl.legendary.web;
//
//import com.zjl.legendary.dto.QuestionDto;
//import com.zjl.legendary.entity.Question;
//import com.zjl.legendary.entity.User;
//import com.zjl.legendary.service.impl.QuestionServiceImpl;
//import com.zjl.legendary.service.intf.QuestionService;
//import com.zjl.legendary.util.BeanUtils;
//import com.zjl.legendary.util.StrUtils;
//
//import javax.servlet.annotation.MultipartConfig;
//import javax.servlet.annotation.WebServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import javax.servlet.http.HttpSession;
//import java.util.List;
//
///**
// * @author zhoujingluo
// * @date 2021/5/27 8:35
// */
//@WebServlet("/api/question")
//@MultipartConfig
//public class QuestionServlet extends BaseServlet {
//    private QuestionService questionService = new QuestionServiceImpl();
//
//    /**
//     * 批量导入试题
//     * @param req 请求
//     * @param resp 响应
//     * @return 响应结果
//     */
//    public String upload(HttpServletRequest req, HttpServletResponse resp){
//        //从session域中获取用户登录状态
//        HttpSession session = req.getSession();
//        User user = (User) session.getAttribute("user");
//        //未登录则跳转到登录页面
//        if (user == null){
//            return "redirect:/login.jsp";
//        }
//        try {
//            //文件上传成功，打印提示页面，并提供跳转链接
//            if (questionService.saveBatch(req.getPart("file"),user.getId())){
//                return "<h2>文件导入成功！</h2><br>点击<a href='"
//                        +req.getContextPath()
//                        +"/api/question?action=showAll&method=get"+"'>查看题库</a>";
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        
//        //文件上传失败，打印提示页面，并提供跳转链接
//        return "<h2>文件导入失败！</h2><br>点击<a href='"
//                +req.getContextPath()
//                +"/safety/questionupload.jsp"+"'>重新上传</a>";
//    }
//
//    /**
//     * 展示题库
//     * @param req 请求
//     * @param resp 响应
//     * @return 响应结果
//     */
//    public String showAll(HttpServletRequest req, HttpServletResponse resp){
//        //uid路径传参/show.do/{uid} @PathVariable("uid")integer uid
//        //获取试题库集合
//        List<QuestionDto> qlist = questionService.query();
//
//        String uid = req.getParameter("uid");
//        if (StrUtils.isNotNull(uid)){
//            qlist = questionService.query(Integer.valueOf(uid));
//        }
//        //存入request域对象中
//        req.setAttribute("qlist",qlist);
//        //转发到题库展示页面
//        return "forward:/safety/questionlist.jsp";
//    }
//
//    /**
//     * 模糊查询搜索试题
//     * @param req 请求
//     * @param resp 响应
//     * @return 响应结果
//     */
//    public String query(HttpServletRequest req, HttpServletResponse resp){
//        //根据标题模糊查询试题集合
//        List<QuestionDto> qlist = questionService.query(req.getParameter("title"));
//        //存入request域对象中
//        req.setAttribute("qlist",qlist);
//        //转发到题库展示页面
//        return "forward:/safety/questionlist.jsp";
//    }
//
//    /**
//     * 向题库中新增试题
//     * @param req 请求
//     * @param resp 响应
//     * @return 响应结果
//     */
//    public String add(HttpServletRequest req, HttpServletResponse resp){
//        //获取session域中存储的用户信息
//        HttpSession session = req.getSession();
//        User user = (User) session.getAttribute("user");
//        //未登录则跳转到登录页面
//        if (user == null){
//            return "redirect:/login.jsp";
//        }
//        //收参并封装试题对象
//        Question question = BeanUtils.parseBean(req, Question.class);
//        //将试题关联给用户
//        question.setUid(user.getId());
//        //添加试题
//        if (questionService.save(question)){
//            //试题添加成功，重定向到题库展示页面
//            return "redirect:/api/question?action=showAll&method=get";
//        } else{
//            //试题添加失败重定向到添加试题页面
//            return "redirect:/safety/questionadd.jsp";
//        }
//    }
//
//    /**
//     * 为新增任务详情页面提供题库列表
//     * @param req 请求
//     * @param resp 响应
//     * @return 响应结果
//     */
//    public String showForTask(HttpServletRequest req, HttpServletResponse resp){
//        //获取题库试题
//        List<QuestionDto> qlist = questionService.query();
//        //存入request域
//        req.setAttribute("qlist",qlist);
//        //转发到任务详情页面
//        return "forward:/safety/taskitemadd.jsp";
//    }
//}
